using System;
using System.Collections.ObjectModel;
using StockholmsStad.Windows.UI.Modules.Couple.Models;
using StockholmsStad.Runtime.Serialization.DataContract;
using StockholmsStad.Runtime.Serialization.DataContract.Enums;
using StockholmsStad.Windows.UI.Facade.Events;

namespace StockholmsStad.Windows.UI.Modules.Couple.Interfaces
{
    public interface ICoupleService
    {
        event EventHandler<CouplesSummaryItemEventArgs> GetTicketsCompleted;
        event EventHandler<DateRangeEventArgs> GetNonAvailableDatesCompleted;
        event EventHandler<DateRangeEventArgs> GetNonFullyBookedDatesCompleted;

        ObservableCollection<CouplesSummaryItem> RetrieveTickets(string partOfName, string partOfBirth, TicketStatusType ticketStatus);
        //void RetriveTicketsASync(string partOfName, string partOfBirth, TicketStatusType ticketStatusType);
        CoupleDetailPresentationModel GetCouple(int ticketId);
        CoupleDetailPresentationModel InitializeNewCouple();

        //void GetNonAvailableDatesASync();
        //void GetNonFullyBookedDatesASync();
        DateRange[] GetNonAvailableDates();
        DateRange[] GetNonFullyBookedDates();
    }
}
